%****************************************************************************%
%* DIET Programmer's Guide                                                  *%
%*                                                                          *%
%*  Author(s):                                                              *%
%*    - Philippe COMBES (Philippe.Combes@ens-lyon.fr)                       *%
%*                                                                          *%
%* $LICENSE$                                                                *%
%****************************************************************************%
%* $Id: ProgrammersGuide.tex,v 1.13 2008/04/07 22:26:26 ecaron Exp $
%* $Log: ProgrammersGuide.tex,v $
%* Revision 1.13  2008/04/07 22:26:26  ecaron
%* Updated files to pdflatex compilation
%*
%* Revision 1.12  2007/11/22 21:07:02  mimbert
%* use latex package fancyhdr instead of fancyheadings which seems deprecated in some recent latex distributions
%*
%* Revision 1.11  2007/04/17 13:34:52  ycaniou
%* Error in debug.tex header
%* Removes some warnings during doc generation
%*
%* Revision 1.10  2007/02/16 10:27:35  ycaniou
%* Beginning of a chapter on the Diet debugging (here, valgrind).
%*
%* Revision 1.9  2006/11/16 14:09:19  eboix
%* - Programmers guide converted from autotools to cmake.
%* - cmake summary deported to Cmake sub-dir.   --- Injay2461
%*
%* Revision 1.8  2006/06/30 21:20:37  eboix
%*   Cmake and dart related modifications:
%*    - [c]cmake's ambiguous option DIET_MAINTAINER_MODE removed. Building the
%*      documentation is now only controled by DIET_BUILD_DOCUMENTATION (and
%*      user's, developpers and doxygen docs are handled together). In order
%*      to use the Maintainer build type add -DCMAKE_BUILD_TYPE:STRING=Maintainer
%*      as [c]cmake option.
%*    - Created Cmake/Dart subdir as placeholder for Dart related utilities.
%*    - Cmake/DashBoardScript.cmake renamed to Cmake/Dart/DashBoardScript.cmake
%*                                                                 --- Injay2461
%*
%* Revision 1.7  2006/01/25 17:26:04  pfrauenk
%* CoRI : Some useful information about CoRI now available
%*
%* Revision 1.6  2005/08/08 08:26:57  ycaniou
%* Fixed remaining reference to ../UserManual/fig/logo in ProgrammersGuide.tex to ./fig/logo
%* Addition of a cp of the ../UserManual/fig/logo in the makefile: now it compiles
%* Addition of a batch section (also contains general remarks which have to be dispatched if pertinent). Not complete!
%*
%* Revision 1.4  2004/01/09 15:26:53  cpera
%* Add Annexe on Autotools.
%*
%* Revision 1.3  2003/12/15 00:13:53  ecaron
%* New structure for the first sheet
%*
%* Revision 1.2  2003/09/17 14:41:28  pcombes
%* Split the .tex according to its chapters.
%*
%* Revision 1.1  2003/09/09 12:42:44  pcombes
%* Reorganization of doc: include CS in a programmer's guide.
%****************************************************************************%

\documentclass[11pt,a4paper]{report}
\makeatletter
%\makeatother
\usepackage{fancyhdr}
%\usepackage[french]{babel}
%\usepackage[latin1]{inputenc}
\usepackage{multicol}
\usepackage{verbatim}
\usepackage[headings]{fullpage}
\usepackage{url}
\usepackage[pdftex]{graphicx}
\graphicspath{{../UM/fig}}

\newsavebox{\logobox}
\sbox{\logobox}{\includegraphics[scale=0.3]{fig/logo_DIET}}
\newcommand{\logo}{\usebox{\logobox}}

%%%%
\renewcommand{\title}{DIET Programmer's Guide}
%%%%

\pagestyle{fancyplain}
\lhead[\fancyplain{\title}{\title}]
      {\fancyplain{\title}{\title}}
\chead{}
\rhead[\fancyplain{\logo}{\logo}]{\fancyplain{\logo}{\logo}}

\lfoot[\fancyplain{INRIA}{INRIA}]{\fancyplain{INRIA}{INRIA}}
\cfoot[\fancyplain{}{}]{\fancyplain{}{}}
\rfoot[\fancyplain{Page~\thepage}{Page~\thepage}]
      {\fancyplain{Page~\thepage}{Page~\thepage}}


\newcommand{\fixme}[1]{\fbox{\textsl{{\bf FIXME: }#1}}}
\newcommand{\CMakeLists}{\textsf{CmakeLists.txt}}
\newcommand{\cmake}{\texttt{cmake}}
\newcommand{\diet}{\textsc{Diet}}

\begin{document}

%%%%
% First sheet
%%%%

\thispagestyle{empty}
\vspace*{3cm}
\vspace*{3cm}

\begin{center}
\includegraphics[scale=.5]{fig/logo_DIET}\\[2ex]
\textbf{\Huge PROGRAMMER'S GUIDE\\[2ex]}
\end{center}

\vfill


\noindent
\small{
\begin{tabular}{ll}
  \textbf{VERSION}  & 1.0\\
  \textbf{DATE}     & December 2003\\
  \textbf{PROJECT MANAGER}  & Fr\'ed\'eric \textsc{Desprez}.\\
  \textbf{EDITORIAL STAFF}  & Eddy \textsc{Caron} and Philippe ~\textsc{Combes}.\\
  \textbf{AUTHORS STAFF}    & 
\begin{minipage}[t]{12cm}
  Eddy \textsc{Caron}, Philippe ~\textsc{Combes}, Sylvain \textsc{Dahan}, Bruno \textsc{Delfabro}, Christophe \textsc{Pera}, Peter \textsc{Frauenkron} and Jean-Yves \textsc{L'Excellent}.
\end{minipage} \\
  \textbf{Copyright}& INRIA
\end{tabular}\\
}

\newpage
\thispagestyle{empty}
\ 

%%%%
% End of first sheet
%%%%

\newpage
\tableofcontents


\sloppy

%
% Introduction
%
\newpage
\addcontentsline{toc}{chapter}{Introduction}
\chapter*{Introduction}

This documents aims at giving to the new programmers of DIET a global
view of the software and it source code, so that they can quickly (and
cleanly) change it to fix bugs or to add new features.

The first chapter is dedicated to the installation of DIET as a
developer, to the use of CVS and the autotools.  The second chapter
describes the source tree, the roles of the various subdirectories and
some explanations about some very sensitive parts of the code (choices
for implementation, etc.)  In the last chapter, you will find the DIET
coding standards, in which we have collected a few guidelines to
follow when adding new source code or modifying the existing code.


%
% Getting started
%
\chapter{Getting started}
\label{ch:start}
\input{start.tex}


%
% The source tree
%
\chapter{The source code tree}
\label{ch:tree}
\input{source_tree.tex}


%
% Coding Standards
%
\chapter{Coding Standards}
\label{ch:CS}
\input{CS.tex}

%
% Remarks and Batch jobs
%
\chapter{Batch Submission and general remarks}
\label{ch:Batch}
\input{batch.tex}

% Debugging
%
\chapter{Debugging}
\label{ch:Debug}
\input{debug.tex}


%
% Autotools
%
\chapter{Annexe}
\label{ch:Annexe}
\input{Annexe1.tex}

%%%%
% Reference 
%%%%


\
\end{document}

